Rich presence status based on location, activity, availability and transit status of a user

ABSTRACT

A method and system for determining and sharing rich presence status of a user is presented. Multiple types of presence status options are associated with user&#39;s status based on location, activity, availability, transit status, and user&#39;s text updates, which the user can selectively share on their mobile device with different groups of users, and make one or more aspects of their presence status broadly available to everyone. Also a system to determine status based on auto-updates and manual updates is presented.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent Application No. 61/316,242, filed on Mar. 22, 2010, which is a Continuation-In-Part of U.S. patent application Ser. No. 12/728,216 entitled “REAL-TIME LOCATION AND PRESENCE USING A PUSH-LOCATION CLIENT AND SERVER,” filed on Mar. 20, 2010, which is a Continuation-In-Part of U.S. patent application Ser. No. 11/838,876 entitled “LOCATION BASED PRESENCE AND PRIVACY MANAGEMENT,” filed on Aug. 14, 2007, and which are hereby incorporated by reference.

BACKGROUND

In many messaging, voice calling, and instant messaging applications, presence has been a key enabler and driver of messaging services. However, the presence status in such services has typically been limited to a user specifying their availability status by manually selecting options such as online, busy, away, etc.

Further, presence status in such services is often made accessible only to users within that service, wherein the users of the service have to be signed on and be approved by the user to be able to view their presence status.

In the mobile phone industry, presence as it has been used in the instant messaging applications has had limited usability as often users are always considered online, or in other words accessible on their mobile device. Further, a very small percentage of users are actively signed on to an instant messaging service on their mobile device at any given time.

Also due to the fragmentation in the mobile industry, extending the usability of presence in the mobile context poses a significant challenge for the industry.

Additionally, due to privacy concerns, extending a user's presence more broadly to everyone or even to all of their contacts is an issue that the industry has not been able to address.

In summary, usability of presence has been limited to desktop applications, where it is primarily integrated with instant messaging applications, and in the mobile context, usability of presence has been significantly diminished due to technological and other constraints imposed by the industry.

SUMMARY

In many instances, users are interested in selectively sharing some aspects of their location or activity status with their friends and family members, and in other scenarios, some aspects of status like transit status more broadly with everyone. In many instances, the status might be related to the location of the user, and can be determined by the mobile device.

One aspect of the invention is to create multiple types of presence status that are associated with user's location, activity, availability, and transit status, which the users can easily and selectively share on their mobile device with different groups of users, and make one or more aspects of their presence status broadly available to everyone, e.g., the transit status can be broadly shared with everyone so any calling user can be informed that the user is driving. In this system, when the users select any of the status options such as location, activity, availability, and transit, relevant status options under these categories are presented to the user to select further relevant options that may be of interest to them. Further, each of the status types have separate privacy settings that the users can specify by group of users, and these can be enabled without providing a location tracking capability to other users.

Another aspect of the invention is that the status can be determined intelligently based on the location information determined by a GPS or another mobile positioning solution, and also dynamically determined based on other information in the system such as user's favorite locations, point of interest locations, user's networks favorite locations that they have permissions to, etc.

Another aspect of the invention is the user interface for determining and sharing such status options, which will have a significant impact on the usability of presence on a mobile device due to the screen size and due to the varying capabilities of the different mobile operating systems.

Another aspect of the invention is to present the user relevant textual or graphical status options based on their location or activity, e.g. when the user is determined to be at an airport, they are dynamically presented relevant location based status options such as “I'm travelling”, “Boarding”, “Arrived”, or “Waiting at baggage claim”, etc., and when at a theater, they can select from options such as “Watching a movie”, “At the Opera”, etc.

Another aspect of the invention is the capability to select the relevant visual status indicators for each of the status categories that can be displayed to the user on the mobile device. In some instances, the relevant visual indicators are automatically selected based on the context of user's action or location.

Another aspect of the invention is a system to capable of managing the privacy of user's status by groups of users. By default, the system manages privacy by at least a few groups such as “family”, “friends”, “work”, and “all”, and users can create additional groups of users and associate privacy settings with each group.

BRIEF DESCRIPTION OF THE DRAWINGS

Foregoing aspects of the invention will become better understood by referring to the following description taken in conjunction with the accompanying drawings.

FIG. 1 is an overview of presence status types and dependencies.

FIG. 2 is a block diagram for determining rich presence status updates based on location, activity, availability, and transit status.

FIG. 3 is a block diagram for associating location contextual text message and status update options based on user's location, activity, availability or transit selection.

FIG. 4 is a block diagram for a system for determining frequently used text messages based on location, activity, availability or transit status selection

FIG. 5 is a block diagram for a system for determining auto and manual updates based on location, activity, availability and transit status.

FIG. 6 is a block diagram for managing privacy settings by groups and privacy levels.

FIG. 7 is an overview of an exemplary application user interface for selecting user's status.

FIG. 8 is an overview of an exemplary application user interface for displaying status overview of all contacts or by a group of contacts or for contacts with recent updates.

FIG. 9 is an overview of an exemplary application user interface for displaying user's status details to other contacts, and providing options for requesting further status details, calling or messaging the user, and planning a meeting.

DETAILED DESCRIPTION

FIG. 1 provides an overview of presence status types and input parameters for determining these status options. In block 110, a number of input parameters are used to determine the status of the user. In block 112, the location input parameters are determined which include one or more of geographic coordinates, location name, location category, area name, city, state, postal code, country, and/or the favorite location identifier of user's current location. In block 114, the activity input parameters are determined which include one or more of default system-specified or user-specified activity status associated with user's favorite locations, or default activity status associated with point of interest (POI) location categories, specific POI locations, sports activity categories, travel activity categories, events categories, and/or status associated with specific events. In block 116, the availability input parameters are determined which include one or more of default system-specified or user-specified availability status associated with user's favorite locations, or default availability status associated with point of interest (POI) location categories, specific POI locations, default availability status associated with selected activity category, cell phone profile selection or other criteria (e.g., ringer on/off, battery status, phone not in coverage area, etc.), as well as status options selected on other instant messaging services. In block 118, the transit input parameters are determined which include one or more of speed of device, whether user is detected as driving using other driving detection mechanisms, specific transit-specific POI locations or categories such as a train station, a bus stop, etc., transit modes selected by the user, and/or if the user is determined to be on the favorite routes or waypoints of the user.

In block 140, the status is determined for the user based on the input parameters for each of the status categories, and the corresponding status is communicated to an application server that maintains the groups and associated privacy settings of the user.

FIG. 2 is an exemplary block diagram for determining rich presence status updates based on location, activity, availability, transit status selections, and any recent text updates. In block 200, a user starts presence application and in block 202, the application starts auto-status updates if auto-updates are enabled, wherein the application determines status updates each time a new location is detected and/or a notification of a new location is received from the location service or the push location client as applicable. Specifically, in block 204, the system determines location and speed of the user, and associates location status based on user's favorite locations and other privacy settings of the user. In block 206, the system associates user's default activity and availability status if applicable based on the location of the user. In block 208, it is determined if the speed of the mobile device is above the transit speed threshold and/or the user is detected to be driving using other driving detection methods. If yes, the system associates transit status to user's status. In block 230, the user may optionally select the mode of transit, which can be saved as the default mode of transit for the user.

Additionally, in block 220, a user may manually update status, e.g. by selecting status tab or button to go to the My Status screen, and optionally selecting the group for sharing the manual status. In block 222, user can optionally select a location category or specifies a location or point of interest. In block 224, system searches nearby point of interest locations for specified location category and/or location criteria, and user can optionally select a specific location from the search results. In block 226, user can optionally select an activity status option, and further optionally select a text update from the relevant text options. In block 228, user can optionally select an availability status option, and further optionally select a text update from the relevant text options. At any time during the manual status update selection process, user can optionally select transit status options as specified earlier in block 230. In block 240, corresponding status options, indicators, and selected text messages are displayed to the user on the status screen. In block 250, the user selects the method for updating the manually selected or specified status options, and can optionally send the status update as an SMS or an email in addition to updating the status on the application server.

FIG. 3 is a block diagram for associating location contextual text messages and status update options based on user's location, activity, availability or transit selection. In this exemplary block diagram 300, in the block 302, the system determines the location of the user, and if in the decision block 304, it is determined that the user is in a saved favorite location of the user, then in block 306, the system selects the default location, activity, and availability status options associated with the favorite location. If in the decision block 304, the user is not determined to be at a saved favorite location, in the block 308, the user may manually select a location category or select a location from search results and/or is determined to be at a point of interest location. As a result of the favorite location or a point of interest location and/or location category selection in blocks 306 or 308, in block 310, the system associates text update options specific to that location. For example, when the user is determined to be at an airport, they are dynamically presented relevant text options such as “I'm travelling”, “Boarding”, “Arrived”, or “At baggage claim”, etc. Similarly, in blocks 312, 314, and 316, the user can optionally select activity, availability, and transit status options respectively, and in corresponding blocks 318, 320, and 322, based on user's selections for activity, availability, or transit status respectively, the system displays relevant text status options for users to select for text updates and/or text messaging. For example, when the user selects Soccer as their activity, they are dynamically presented relevant text options such as “Playing Soccer”, “Watching Soccer World Cup”, etc. The system may determine the text options to be displayed based on the user's selection, and a system determined list of text updates based on location, and any associated activities and events at that location.

FIG. 4 is a block diagram 400 for a system for determining and providing frequently used text messages based on location, activity, availability or transit status selection. In block 402, when a user sends text updates and/or updates their text status, in block 404, the system determines if user is at a favorite or POI location, or has selected a location, activity, availability, or transit status option. In block 406, the text message is added to user's custom text messages list along with the associated location name, POI category or another keyword based on activity, availability or transit status selected or specified by the user, up to a limited number of custom text messages as specified by the system. In block 408, as the user selects custom text messages, a ranking of frequently used text updates is maintained in the system. In block 410, as the user sends text updates and/or text messages, the relevant top frequently used messages are displayed in the text message selection list based on the location, location category, activity, availability, transit selected or determined by the system.

FIG. 5 is a block diagram for a system for determining auto and manual updates. In the block 500, when the user starts the application, a default selection is made for turning the Auto Updates ON or OFF, which can be changed by the user. In the decision block 502, it is determined if the Auto Status Updates setting is ON or OFF. If enabled, in block 520, the system monitors user's location in an always-on, real-time mode, and also turns on a status monitoring thread, which is notified when the user's location changes. In block 522, when the user's location changes, it is further determined if the status of the user has changed since the last status update was sent to the server. The system checks if the status has changed for any of the status options, including location, activity, availability, transit or text status options. When the status has changed, the client sends a status update to the server, with the associated Status Update Type marked as Auto Status. However, if Auto Status Updates option is turned OFF, no auto-updates are sent, and the user can manually update the status as appropriate.

Additionally, at any time, in block 530, the user can manually initiate an update request for their status, and can specify groups for updating the status. In such a case, in block 532, the user manually selects status based on location, and optionally selects activity, availability, transit status options. Further, in block 534, user optionally selects or adds text message updates. In block 536, user can optionally specify if they want to update the status with the server, or send the status update as an SMS or Email. The mobile client accordingly sends the status updates, and also updates the server with the Status Update Type marked as Manual update. In such a case, when a contact views the user's status, in block 538, the system determines the most recent manual status messages accessible by the contact, and displays them along with a timestamp. Using such a system of Auto and Manual status updates, the most recent status update of the user is available to the contacts of the user, and most recent Auto Updates can be displayed along with most recent Manual Updates and a most recent status context is maintained regardless of the different frequencies of such updates.

FIG. 6 is an exemplary user interface 600 and provides an overview of how to manage privacy settings associated with the status options by groups and privacy levels. In the element 602, the name of the group is displayed or an option is presented to select or specify the group. In the element 604, an option to select a privacy level is presented. This can be in the form or a slider or a drop down menu. By selecting from a list of easy to understand options such as None, Low, Medium, High and Custom, the privacy settings for the different status elements 606, 608, 610, 612, 614, and for location sharing levels in element 616 can be updated by default. Additionally, a default set of group options such as Family, Friends, Work, Others can be pre-configured on a mobile device with different privacy levels. This provides the user an option to get a good out of the box experience, and the option to change any of the privacy settings for one or more group as per their individual privacy preferences.

FIG. 7 is an overview of an exemplary application user interface 700 for displaying and selecting user's status by group. Elements in the row 702 correspond with the groups of the user, and can be selected to see the corresponding status update available to the contacts in each group, while also providing a interface for group text messaging. The elements 704 and 706 display the picture and status available to the group, and button elements 708, 710, 712, 714 are selection start buttons for location, activity, availability, and transit status. Element 716 displays the text message options that the user can select to update their status, and a dynamically updated list of text messages can be displayed using a drop down or similar element. Element 718 is the input area for the user to provide a custom text message. Element 720 element can be a button or dropdown to select the mode of sending status, such as options to Update Only, Send As SMS, or Send As Email. Element 722 is to manually update the status after the user has selected the corresponding status options.

FIG. 8 is an overview of an exemplary application user interface 800 for displaying status overview of all contacts or by a group of contacts or for contacts with recent updates. For each contact, a row of their image, name, and current or most recent status update is included. Multiple rows for status updates may be included, and prioritized based on information available in the location, activity, availability, transit, or text status elements. Location status is provided if available. In a second row, transit status, activity, and availability are presented in an order of priority, such that if transit status is available, it takes precedence over activity and availability, and activity takes precedence over availability. Finally, most recent text update can be presented if shared with the contact. Upon selecting the row, the contact can see a more detailed Contacts screen, such as the one presented in the illustration 900.

FIG. 9 is an overview of an exemplary application user interface 900 for a detailed Contacts screen, displaying user's status details to other contacts, and providing options for viewing the contacts favorite locations shared by the user, requesting further status details, calling or messaging the user, and/or viewing any published calendar information for purposes of planning a meeting. The contact's most recent status updates or status history is also included in this interface. 

1. A system for determining a rich presence status of a user, comprising: at least a mobile device capable of determining the input parameters associated with one or more of location, activity, availability, or transit status of the user; at least an application server maintaining privacy settings of the user; at least the application server is capable of determining status of user based on said input parameters; wherein the rich presence status can be determined based on location, activity, availability and/or transit status of the user.
 2. The system of claim 1: wherein the application server further maintains groups and associated privacy settings of the user.
 3. The system of claim 1, including: the application server further maintains privacy levels which can be associated with groups and/or contacts of the user to determine what status is available to a contact.
 4. The system of claim 1, including: the mobile device determines and provides relevant textual status options based on the location or activity of the user.
 5. The system of claim 1, including: the mobile device is further capable of sending user's status as text messages to groups of users.
 6. A method for determining a rich presence status of a user, comprising: at least a mobile device determining the input parameters associated with one or more of location, activity, availability, or transit status of the user; the mobile device sending the input parameters to an application server; the application server associating privacy settings associated with groups of contacts; the application server sharing the status with said contacts based on associated privacy settings;
 7. The method of claim 1: wherein the mobile device and/or application server can associate user-specified defaults for status options associated with favorite locations of the user.
 8. The method of claim 1: wherein the mobile device and/or application server can associate system-specified defaults for point of locations categories and/or specific points of locations. 